/*
 * CadastrarVenda.java
 *
 * Created on 23/11/2009, 10:35:13
 * Copyright Administrador
 */
package Soligee.view;

import Soligee.controller.bo.VendaBO;
import Soligee.controller.facade.sessionFacadeImplements.SessionFacadeBuscarImplements;
import Soligee.controller.facade.sessionFacadeImplements.SessionFacadeCadastrarImplements;
import Soligee.decorador.DecoradorNF;
import Soligee.decorador.PaginacaoListaCincoEmCinco;
import Soligee.decorador.ValidaCamposObrigatorios;
import Soligee.model.vo.cadastros.PessoaFisicaVO;
import Soligee.model.vo.cadastros.PessoaJuridicaVO;
import Soligee.model.vo.cadastros.ProdutoVO;
import Soligee.model.vo.cadastros.VendedorVO;
import Soligee.model.vo.lancamentos.ItensVendaVO;
import Soligee.model.vo.lancamentos.VendaVO;
import com.icesoft.faces.component.ext.HtmlCommandButton;
import com.icesoft.faces.component.ext.HtmlCommandLink;
import com.icesoft.faces.component.ext.HtmlDataTable;
import com.icesoft.faces.component.ext.HtmlInputText;
import com.icesoft.faces.component.ext.HtmlOutputText;
import com.icesoft.faces.component.ext.HtmlSelectBooleanCheckbox;
import com.icesoft.faces.component.ext.HtmlSelectOneMenu;
import com.icesoft.faces.component.jsfcl.data.DefaultSelectedData;
import com.icesoft.faces.component.jsfcl.data.DefaultSelectionItems;
import com.icesoft.faces.component.jsfcl.data.DefaultTableDataModel;
import com.icesoft.faces.component.jsfcl.data.PopupBean;
import com.icesoft.faces.component.jsfcl.data.SelectInputDateBean;
import com.icesoft.faces.component.panelpopup.PanelPopup;
import com.icesoft.faces.component.paneltabset.PanelTab;
import com.icesoft.faces.component.paneltabset.PanelTabSet;
import com.icesoft.faces.component.selectinputdate.SelectInputDate;
import com.icesoft.faces.component.selectinputtext.SelectInputText;
import com.icesoft.faces.context.effects.Highlight;
import com.sun.rave.faces.converter.SqlDateConverter;
import com.sun.rave.web.ui.appbase.AbstractPageBean;
import java.io.IOException;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import javax.faces.FacesException;
import javax.faces.context.FacesContext;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.SelectItem;


/**
 * <p>Page bean that corresponds to a similarly named JSP page.  This
 * class contains component definitions (and initialization code) for
 * all components that you have defined on this page, as well as
 * lifecycle methods and event handlers where you may add behavior
 * to respond to incoming events.</p>
 */
public class CadastrarVenda extends AbstractPageBean {
    // <editor-fold defaultstate="collapsed" desc="Managed Component Definition">
    private int __placeholder;
    private DefaultSelectionItems item; //item do autocomplete
    DecimalFormat digitos = new java.text.DecimalFormat("0.00");
    private double quantidadeTotalProdutos = 0;
     //decorador da tabela de itens
    private static List<DecoradorNF> listaDecoradora = new ArrayList();
    //atributo necessario para paginacao da tabela de itens
    private static PaginacaoListaCincoEmCinco paginacaoTabelaItens;
    //variavel necessaria para realizar calculos negocio
    private static VendaBO vendaBo;
    //cria uma lista de itens a serem cadastrados para essa nota
    private static List<ItensVendaVO> listaItensVenda = new ArrayList();
    //cria uma lista de produtos para serem adicinados na chave composta quando cadastrar
    private static List<ProdutoVO> listaProdutos = new ArrayList();
    //Controle
    private int contador = 0;
    private static int controlaSaida = 0;
    private static double valorVenda = 0;

    public static PaginacaoListaCincoEmCinco getPaginacaoBusca() {
        return paginacaoBusca;
    }

    public static void setPaginacaoBusca(PaginacaoListaCincoEmCinco paginacaoBusca) {
        CadastrarVenda.paginacaoBusca = paginacaoBusca;
    }
    private static PaginacaoListaCincoEmCinco paginacaoBusca = null;


     public static VendaBO getVendaBo() {
        return vendaBo;
    }

    public static void setVendaBo(VendaBO vendaBo) {
        CadastrarVenda.vendaBo = vendaBo;
    }
    
    public double getQuantidadeTotalProdutos() {
        return quantidadeTotalProdutos;
    }

    public void setQuantidadeTotalProdutos(double quantidadeTotalProdutos) {
        this.quantidadeTotalProdutos = quantidadeTotalProdutos;
    }

    
    public DecimalFormat getDigitos() {
        return digitos;
    }

    public void setDigitos(DecimalFormat digitos) {
        this.digitos = digitos;
    }
   

    public static List<DecoradorNF> getListaDecoradora() {
        return listaDecoradora;
    }

    public static void setListaDecoradora(List<DecoradorNF> listaDecoradora) {
        CadastrarVenda.listaDecoradora = listaDecoradora;
    }

   
    public static List<ItensVendaVO> getListaItensVenda() {
        return listaItensVenda;
    }

    public static void setListaItensVenda(List<ItensVendaVO> listaItensVenda) {
        CadastrarVenda.listaItensVenda = listaItensVenda;
    }

    public static List<ProdutoVO> getListaProdutos() {
        return listaProdutos;
    }

    public static void setListaProdutos(List<ProdutoVO> listaProdutos) {
        CadastrarVenda.listaProdutos = listaProdutos;
    }

    
    public static PaginacaoListaCincoEmCinco getPaginacaoTabelaItens() {
        return paginacaoTabelaItens;
    }

    public static void setPaginacaoTabelaItens(PaginacaoListaCincoEmCinco paginacaoTabelaItens) {
        CadastrarVenda.paginacaoTabelaItens = paginacaoTabelaItens;
    }

    public DefaultSelectionItems getItem() {
        return item;
    }

    public void setItem(DefaultSelectionItems item) {
        this.item = item;
    }
    /**
     * <p>Automatically managed component initialization.  <strong>WARNING:</strong>
     * This method is automatically generated, so any user-specified code inserted
     * here is subject to being replaced.</p>
     */
    private void _init() throws Exception {
    }
    private SelectInputDateBean selectInputDate1Bean = new SelectInputDateBean();

    public SelectInputDateBean getSelectInputDate1Bean() {
        return selectInputDate1Bean;
    }

    public void setSelectInputDate1Bean(SelectInputDateBean sidb) {
        this.selectInputDate1Bean = sidb;
    }
    private DefaultTableDataModel dataTable1Model = new DefaultTableDataModel();

    public DefaultTableDataModel getDataTable1Model() {
        return dataTable1Model;
    }

    public void setDataTable1Model(DefaultTableDataModel dtdm) {
        this.dataTable1Model = dtdm;
    }

    //Combo NomeCliente
    private DefaultSelectedData botaoSelecionadoComboNomeCliente = new DefaultSelectedData();

    public DefaultSelectedData getBotaoSelecionadoComboNomeCliente() {
        return botaoSelecionadoComboNomeCliente;
    }

    public void setBotaoSelecionadoComboNomeCliente(DefaultSelectedData dsd) {
        this.botaoSelecionadoComboNomeCliente = dsd;
    }
    private DefaultSelectionItems botaoComboNomeCliente = new DefaultSelectionItems();

    public DefaultSelectionItems getBotaoComboNomeCliente() {
        return botaoComboNomeCliente;
    }

    public void setBotaoComboNomeCliente(DefaultSelectionItems dsi) {
        this.botaoComboNomeCliente = dsi;
    }

    //Combo NomeVendedor
     private DefaultSelectedData botaoSelecionadoComboNomeVendedor = new DefaultSelectedData();

    public DefaultSelectedData getBotaoSelecionadoComboNomeVendedor() {
        return botaoSelecionadoComboNomeVendedor;
    }

    public void setBotaoSelecionadoComboNomeVendedor(DefaultSelectedData dsd) {
        this.botaoSelecionadoComboNomeVendedor = dsd;
    }
    private DefaultSelectionItems botaoComboNomeVendedor = new DefaultSelectionItems();

    public DefaultSelectionItems getBotaoComboNomeVendedor() {
        return botaoComboNomeVendedor;
    }

    public void setBotaoComboNomeVendedor(DefaultSelectionItems dsi) {
        this.botaoComboNomeVendedor = dsi;
    }

    //Combo FormaPagamento
    private DefaultSelectedData botaoSelecionadoComboFormaPagamento = new DefaultSelectedData();

    public DefaultSelectedData getBotaoSelecionadoComboFormaPagamento() {
        return botaoSelecionadoComboFormaPagamento;
    }

    public void setBotaoSelecionadoComboFormaPagamento(DefaultSelectedData dsd) {
        this.botaoSelecionadoComboFormaPagamento = dsd;
    }
    private DefaultSelectionItems botaoComboFormaPagamento = new DefaultSelectionItems();

    public DefaultSelectionItems getBotaoComboFormaPagamento() {
        return botaoComboFormaPagamento;
    }

    public void setBotaoComboFormaPagamento(DefaultSelectionItems dsi) {
        this.botaoComboFormaPagamento = dsi;
    }

    //Combo QuantidadeParcelas
     private DefaultSelectedData botaoSelecionadoComboQtdParcelas = new DefaultSelectedData();

    public DefaultSelectedData getBotaoSelecionadoComboQtdParcelas() {
        return botaoSelecionadoComboQtdParcelas;
    }

    public void setBotaoSelecionadoComboQtdParcelas(DefaultSelectedData dsd) {
        this.botaoSelecionadoComboQtdParcelas = dsd;
    }
    private DefaultSelectionItems botaoComboQtdParcelas = new DefaultSelectionItems();

    public DefaultSelectionItems getBotaoComboQtdParcelas() {
        return botaoComboQtdParcelas;
    }

    public void setBotaoComboQtdParcelas(DefaultSelectionItems dsi) {
        this.botaoComboQtdParcelas = dsi;
    }
    private DefaultSelectedData selectBooleanCheckbox1Bean = new DefaultSelectedData();

    public DefaultSelectedData getSelectBooleanCheckbox1Bean() {
        return selectBooleanCheckbox1Bean;
    }

    public void setSelectBooleanCheckbox1Bean(DefaultSelectedData dsd) {
        this.selectBooleanCheckbox1Bean = dsd;
    }
    private DefaultSelectedData defaultSelectedData2 = new DefaultSelectedData();

    public DefaultSelectedData getDefaultSelectedData2() {
        return defaultSelectedData2;
    }

    public void setDefaultSelectedData2(DefaultSelectedData dsd) {
        this.defaultSelectedData2 = dsd;
    }
    private DefaultSelectedData defaultSelectedData3 = new DefaultSelectedData();

    public DefaultSelectedData getDefaultSelectedData3() {
        return defaultSelectedData3;
    }

    public void setDefaultSelectedData3(DefaultSelectedData dsd) {
        this.defaultSelectedData3 = dsd;
    }
    private DefaultSelectedData defaultSelectedData4 = new DefaultSelectedData();

    public DefaultSelectedData getDefaultSelectedData4() {
        return defaultSelectedData4;
    }

    public void setDefaultSelectedData4(DefaultSelectedData dsd) {
        this.defaultSelectedData4 = dsd;
    }
    private HtmlSelectBooleanCheckbox checkBoxPorcentagemAcrescimo = new HtmlSelectBooleanCheckbox();

    public HtmlSelectBooleanCheckbox getCheckBoxPorcentagemAcrescimo() {
        return checkBoxPorcentagemAcrescimo;
    }

    public void setCheckBoxPorcentagemAcrescimo(HtmlSelectBooleanCheckbox hsbc) {
        this.checkBoxPorcentagemAcrescimo = hsbc;
    }
    private HtmlSelectBooleanCheckbox checkBoxValorAcrescimo = new HtmlSelectBooleanCheckbox();

    public HtmlSelectBooleanCheckbox getCheckBoxValorAcrescimo() {
        return checkBoxValorAcrescimo;
    }

    public void setCheckBoxValorAcrescimo(HtmlSelectBooleanCheckbox hsbc) {
        this.checkBoxValorAcrescimo = hsbc;
    }
    private HtmlSelectBooleanCheckbox checkBoxPorcentagemDesconto = new HtmlSelectBooleanCheckbox();

    public HtmlSelectBooleanCheckbox getCheckBoxPorcentagemDesconto() {
        return checkBoxPorcentagemDesconto;
    }

    public void setCheckBoxPorcentagemDesconto(HtmlSelectBooleanCheckbox hsbc) {
        this.checkBoxPorcentagemDesconto = hsbc;
    }
    private HtmlSelectBooleanCheckbox checkBoxValorDesconto = new HtmlSelectBooleanCheckbox();

    public HtmlSelectBooleanCheckbox getCheckBoxValorDesconto() {
        return checkBoxValorDesconto;
    }

    public void setCheckBoxValorDesconto(HtmlSelectBooleanCheckbox hsbc) {
        this.checkBoxValorDesconto = hsbc;
    }
    private HtmlInputText campoAcrescimo = new HtmlInputText();

    public HtmlInputText getCampoAcrescimo() {
        return campoAcrescimo;
    }

    public void setCampoAcrescimo(HtmlInputText hit) {
        this.campoAcrescimo = hit;
    }
    private HtmlInputText campoDesconto = new HtmlInputText();

    public HtmlInputText getCampoDesconto() {
        return campoDesconto;
    }

    public void setCampoDesconto(HtmlInputText hit) {
        this.campoDesconto = hit;
    }
    private HtmlInputText campoValorAcrescimo = new HtmlInputText();

    public HtmlInputText getCampoValorAcrescimo() {
        return campoValorAcrescimo;
    }

    public void setCampoValorAcrescimo(HtmlInputText hit) {
        this.campoValorAcrescimo = hit;
    }
    private HtmlInputText campoValorDesconto = new HtmlInputText();

    public HtmlInputText getCampoValorDesconto() {
        return campoValorDesconto;
    }

    public void setCampoValorDesconto(HtmlInputText hit) {
        this.campoValorDesconto = hit;
    }
    private PanelTabSet painelAbasVenda = new PanelTabSet();

    public PanelTabSet getPainelAbasVenda() {
        return painelAbasVenda;
    }

    public void setPainelAbasVenda(PanelTabSet pts) {
        this.painelAbasVenda = pts;
    }
    private SelectInputText produtoABuscar = new SelectInputText();

    public SelectInputText getProdutoABuscar() {
        return produtoABuscar;
    }

    public void setProdutoABuscar(SelectInputText sit) {
        this.produtoABuscar = sit;
    }
    private HtmlInputText campoQuantidade = new HtmlInputText();

    public HtmlInputText getCampoQuantidade() {
        return campoQuantidade;
    }

    public void setCampoQuantidade(HtmlInputText hit) {
        this.campoQuantidade = hit;
    }
    private HtmlInputText campoValorUnitario = new HtmlInputText();

    public HtmlInputText getCampoValorUnitario() {
        return campoValorUnitario;
    }

    public void setCampoValorUnitario(HtmlInputText hit) {
        this.campoValorUnitario = hit;
    }
    private HtmlCommandButton buttonAdicionarItem = new HtmlCommandButton();

    public HtmlCommandButton getButtonAdicionarItem() {
        return buttonAdicionarItem;
    }

    public void setButtonAdicionarItem(HtmlCommandButton hcb) {
        this.buttonAdicionarItem = hcb;
    }
    private HtmlInputText campoValorTotalProdutos = new HtmlInputText();

    public HtmlInputText getCampoValorTotalProdutos() {
        return campoValorTotalProdutos;
    }

    public void setCampoValorTotalProdutos(HtmlInputText hit) {
        this.campoValorTotalProdutos = hit;
    }
    private HtmlCommandLink linkFinalizarVenda = new HtmlCommandLink();

    public HtmlCommandLink getLinkFinalizarVenda() {
        return linkFinalizarVenda;
    }

    public void setLinkFinalizarVenda(HtmlCommandLink hcl) {
        this.linkFinalizarVenda = hcl;
    }
    private HtmlDataTable tabelaItensVenda = new HtmlDataTable();

    public HtmlDataTable getTabelaItensVenda() {
        return tabelaItensVenda;
    }

    public void setTabelaItensVenda(HtmlDataTable hdt) {
        this.tabelaItensVenda = hdt;
    }
    private HtmlInputText campoCodVenda = new HtmlInputText();

    public HtmlInputText getCampoCodVenda() {
        return campoCodVenda;
    }

    public void setCampoCodVenda(HtmlInputText hit) {
        this.campoCodVenda = hit;
    }
    private SelectInputDate dataVenda = new SelectInputDate();

    public SelectInputDate getDataVenda() {
        return dataVenda;
    }

    public void setDataVenda(SelectInputDate sid) {
        this.dataVenda = sid;
    }
    private HtmlSelectOneMenu comboNomeCliente = new HtmlSelectOneMenu();

    public HtmlSelectOneMenu getComboNomeCliente() {
        return comboNomeCliente;
    }

    public void setComboNomeCliente(HtmlSelectOneMenu hsom) {
        this.comboNomeCliente = hsom;
    }
    private HtmlSelectOneMenu comboNomeVendedor = new HtmlSelectOneMenu();

    public HtmlSelectOneMenu getComboNomeVendedor() {
        return comboNomeVendedor;
    }

    public void setComboNomeVendedor(HtmlSelectOneMenu hsom) {
        this.comboNomeVendedor = hsom;
    }
    private HtmlSelectOneMenu comboFormaPagamento = new HtmlSelectOneMenu();

    public HtmlSelectOneMenu getComboFormaPagamento() {
        return comboFormaPagamento;
    }

    public void setComboFormaPagamento(HtmlSelectOneMenu hsom) {
        this.comboFormaPagamento = hsom;
    }
    private HtmlSelectOneMenu comboQtdParcelas = new HtmlSelectOneMenu();

    public HtmlSelectOneMenu getComboQtdParcelas() {
        return comboQtdParcelas;
    }

    public void setComboQtdParcelas(HtmlSelectOneMenu hsom) {
        this.comboQtdParcelas = hsom;
    }
    private HtmlInputText campoValorTProduto = new HtmlInputText();

    public HtmlInputText getCampoValorTProduto() {
        return campoValorTProduto;
    }

    public void setCampoValorTProduto(HtmlInputText hit) {
        this.campoValorTProduto = hit;
    }

    //ComboOpcaoPagamento
    private DefaultSelectedData botaoSelecionadoComboOpcaoPagamento = new DefaultSelectedData();

    public DefaultSelectedData getBotaoSelecionadoComboOpcaoPagamento() {
        return botaoSelecionadoComboOpcaoPagamento;
    }

    public void setBotaoSelecionadoComboOpcaoPagamento(DefaultSelectedData dsd) {
        this.botaoSelecionadoComboOpcaoPagamento = dsd;
    }
    private DefaultSelectionItems botaoComboOpcaoPagamento = new DefaultSelectionItems();

    public DefaultSelectionItems getBotaoComboOpcaoPagamento() {
        return botaoComboOpcaoPagamento;
    }

    public void setBotaoComboOpcaoPagamento(DefaultSelectionItems dsi) {
        this.botaoComboOpcaoPagamento = dsi;
    }
    private HtmlSelectOneMenu comboOpcaoPagamento = new HtmlSelectOneMenu();

    public HtmlSelectOneMenu getComboOpcaoPagamento() {
        return comboOpcaoPagamento;
    }

    public void setComboOpcaoPagamento(HtmlSelectOneMenu hsom) {
        this.comboOpcaoPagamento = hsom;
    }

    //Opção ComboTipoCliente
    private DefaultSelectedData botaoSelecionadoComboTipoCliente = new DefaultSelectedData();

    public DefaultSelectedData getBotaoSelecionadoComboTipoCliente() {
        return botaoSelecionadoComboTipoCliente;
    }

    public void setBotaoSelecionadoComboTipoCliente(DefaultSelectedData dsd) {
        this.botaoSelecionadoComboTipoCliente = dsd;
    }
    private DefaultSelectionItems botaoComboTipoCliente = new DefaultSelectionItems();

    public DefaultSelectionItems getBotaoComboTipoCliente() {
        return botaoComboTipoCliente;
    }

    public void setBotaoComboTipoCliente(DefaultSelectionItems dsi) {
        this.botaoComboTipoCliente = dsi;
    }
    private HtmlSelectOneMenu comboTipoCliente = new HtmlSelectOneMenu();

    public HtmlSelectOneMenu getComboTipoCliente() {
        return comboTipoCliente;
    }

    public void setComboTipoCliente(HtmlSelectOneMenu hsom) {
        this.comboTipoCliente = hsom;
    }
    private PopupBean panelPopup1Bean = new PopupBean();

    public PopupBean getPanelPopup1Bean() {
        return panelPopup1Bean;
    }

    public void setPanelPopup1Bean(PopupBean pb) {
        this.panelPopup1Bean = pb;
    }
    private PanelPopup painelPopUpAviso = new PanelPopup();

    public PanelPopup getPainelPopUpAviso() {
        return painelPopUpAviso;
    }

    public void setPainelPopUpAviso(PanelPopup pp) {
        this.painelPopUpAviso = pp;
    }
    private HtmlOutputText tx_popUpAviso = new HtmlOutputText();

    public HtmlOutputText getTx_popUpAviso() {
        return tx_popUpAviso;
    }

    public void setTx_popUpAviso(HtmlOutputText hot) {
        this.tx_popUpAviso = hot;
    }
    private HtmlCommandButton btn_popUpAviso1 = new HtmlCommandButton();

    public HtmlCommandButton getBtn_popUpAviso1() {
        return btn_popUpAviso1;
    }

    public void setBtn_popUpAviso1(HtmlCommandButton hcb) {
        this.btn_popUpAviso1 = hcb;
    }
    private HtmlCommandButton btn_popUpAviso2 = new HtmlCommandButton();

    public HtmlCommandButton getBtn_popUpAviso2() {
        return btn_popUpAviso2;
    }

    public void setBtn_popUpAviso2(HtmlCommandButton hcb) {
        this.btn_popUpAviso2 = hcb;
    }
    private HtmlInputText campoNumeroProdutos = new HtmlInputText();

    public HtmlInputText getCampoNumeroProdutos() {
        return campoNumeroProdutos;
    }

    public void setCampoNumeroProdutos(HtmlInputText hit) {
        this.campoNumeroProdutos = hit;
    }
    private HtmlInputText campoCodVendaAba01 = new HtmlInputText();

    public HtmlInputText getCampoCodVendaAba01() {
        return campoCodVendaAba01;
    }

    public void setCampoCodVendaAba01(HtmlInputText hit) {
        this.campoCodVendaAba01 = hit;
    }
    private HtmlInputText campoValorTotalVenda = new HtmlInputText();

    public HtmlInputText getCampoValorTotalVenda() {
        return campoValorTotalVenda;
    }

    public void setCampoValorTotalVenda(HtmlInputText hit) {
        this.campoValorTotalVenda = hit;
    }
    

    
    private PanelTab aba01 = new PanelTab();

    public PanelTab getAba01() {
        return aba01;
    }

    public void setAba01(PanelTab pt) {
        this.aba01 = pt;
    }
    private PanelTab aba02 = new PanelTab();

    public PanelTab getAba02() {
        return aba02;
    }

    public void setAba02(PanelTab pt) {
        this.aba02 = pt;
    }
    private HtmlCommandButton tabelaItensVendaFooterFirstButton = new HtmlCommandButton();

    public HtmlCommandButton getTabelaItensVendaFooterFirstButton() {
        return tabelaItensVendaFooterFirstButton;
    }

    public void setTabelaItensVendaFooterFirstButton(HtmlCommandButton hcb) {
        this.tabelaItensVendaFooterFirstButton = hcb;
    }
    private HtmlCommandButton tabelaItensVendaFooterPreviousButton = new HtmlCommandButton();

    public HtmlCommandButton getTabelaItensVendaFooterPreviousButton() {
        return tabelaItensVendaFooterPreviousButton;
    }

    public void setTabelaItensVendaFooterPreviousButton(HtmlCommandButton hcb) {
        this.tabelaItensVendaFooterPreviousButton = hcb;
    }
    private HtmlCommandButton tabelaItensVendaFooterNextButton = new HtmlCommandButton();

    public HtmlCommandButton getTabelaItensVendaFooterNextButton() {
        return tabelaItensVendaFooterNextButton;
    }

    public void setTabelaItensVendaFooterNextButton(HtmlCommandButton hcb) {
        this.tabelaItensVendaFooterNextButton = hcb;
    }
    private HtmlCommandButton tabelaItensVendaFooterLastButton = new HtmlCommandButton();

    public HtmlCommandButton getTabelaItensVendaFooterLastButton() {
        return tabelaItensVendaFooterLastButton;
    }

    public void setTabelaItensVendaFooterLastButton(HtmlCommandButton hcb) {
        this.tabelaItensVendaFooterLastButton = hcb;
    }
    private SqlDateConverter sqlDateConverter1 = new SqlDateConverter();

    public SqlDateConverter getSqlDateConverter1() {
        return sqlDateConverter1;
    }

    public void setSqlDateConverter1(SqlDateConverter sdc) {
        this.sqlDateConverter1 = sdc;
    }





    // </editor-fold>

    /**
     * <p>Construct a new Page bean instance.</p>
     */
    public CadastrarVenda() {
    }

    /**
     * <p>Callback method that is called whenever a page is navigated to,
     * either directly via a URL, or indirectly via page navigation.
     * Customize this method to acquire resources that will be needed
     * for event handlers and lifecycle methods, whether or not this
     * page is performing post back processing.</p>
     * 
     * <p>Note that, if the current request is a postback, the property
     * values of the components do <strong>not</strong> represent any
     * values submitted with this request.  Instead, they represent the
     * property values that were saved for this view when it was rendered.</p>
     */
    @Override
    public void init() {
        // Perform initializations inherited from our superclass
        super.init();  
        this.InicializaCampos();
        FacesContext.getCurrentInstance().getExternalContext().getRequestMap().clear();
        aba02.setDisabled(true);

        // Perform application initialization that must complete
        // *before* managed components are initialized
        // TODO - add your own initialiation code here
            
        // <editor-fold defaultstate="collapsed" desc="Managed Component Initialization">
        // Initialize automatically managed components
        // *Note* - this logic should NOT be modified
        try {
            _init();
        } catch (Exception e) {
            log("CadastrarVenda Initialization Failure", e);
            throw e instanceof FacesException ? (FacesException) e: new FacesException(e);
        }
        
        // </editor-fold>
        // Perform application initialization that must complete
        // *after* managed components are initialized
        // TODO - add your own initialization code here
    }

    /**
     * <p>Callback method that is called after the component tree has been
     * restored, but before any event processing takes place.  This method
     * will <strong>only</strong> be called on a postback request that
     * is processing a form submit.  Customize this method to allocate
     * resources that will be required in your event handlers.</p>
     */
    @Override
    public void preprocess() {
    }

    /**
     * <p>Callback method that is called just before rendering takes place.
     * This method will <strong>only</strong> be called for the page that
     * will actually be rendered (and not, for example, on a page that
     * handled a postback and then navigated to a different page).  Customize
     * this method to allocate resources that will be required for rendering
     * this page.</p>
     */
    @Override
    public void prerender() {
    }

    /**
     * <p>Callback method that is called after rendering is completed for
     * this request, if <code>init()</code> was called (regardless of whether
     * or not this was the page that was actually rendered).  Customize this
     * method to release resources acquired in the <code>init()</code>,
     * <code>preprocess()</code>, or <code>prerender()</code> methods (or
     * acquired during execution of an event handler).</p>
     */
    @Override
    public void destroy() {
    }

    /**
     * <p>Retornar uma referência para o Bean de dados limitados.</p>
     *
     * @retorna uma referência para o bean de dados limitados
     */
    protected SessionBean1 getview$SessionBean1() {
        return (SessionBean1) getBean("view$SessionBean1");
    }

    /**
     * <p>Retornar uma referência para o Bean de dados limitados.</p>
     *
     * @retorna uma referência para o bean de dados limitados
     */
    protected ApplicationBean1 getview$ApplicationBean1() {
        return (ApplicationBean1) getBean("view$ApplicationBean1");
    }

    /**
     * <p>Retornar uma referência para o Bean de dados limitados.</p>
     *
     * @retorna uma referência para o bean de dados limitados
     */
    protected RequestBean1 getview$RequestBean1() {
        return (RequestBean1) getBean("view$RequestBean1");
    }

    // InicializaCampos
    public void InicializaCampos(){
        //Inicializa Aba01
        painelAbasVenda.setSelectedIndex(0);
        //Inicializa CódigoVenda
        SessionFacadeBuscarImplements facadeBusca = new SessionFacadeBuscarImplements();
        campoCodVenda.setValue(facadeBusca.totalDeRegistros(VendaVO.class) + 1);
        campoCodVendaAba01.setValue(facadeBusca.totalDeRegistros(VendaVO.class) + 1);
        //Inicializa Acréscimo e Desconto
        campoAcrescimo.setDisabled(true);
        campoDesconto.setDisabled(true);
        campoValorAcrescimo.setDisabled(true);
        campoValorDesconto.setDisabled(true);
        campoAcrescimo.resetValue();
        campoDesconto.resetValue();
        campoValorAcrescimo.resetValue();
        campoValorDesconto.resetValue();
        //Inicializa QtdadeParcelas
        //comboQtdParcelas.setDisabled(false);
        botaoComboQtdParcelas.clear();       
        botaoComboQtdParcelas.add(new SelectItem (1,""));
        botaoComboQtdParcelas.add(new SelectItem (2,"2 Vezes"));
        botaoComboQtdParcelas.add(new SelectItem (3,"3 Vezes"));      
        //Combo TipoCliente
        botaoComboTipoCliente.clear();        
        botaoComboTipoCliente.add(new SelectItem (1,"Pessoa Física"));
        botaoComboTipoCliente.add(new SelectItem (2,"Pessoa Jurídica"));
        //Combo OpcaoPagamento
        botaoComboOpcaoPagamento.clear();
        botaoComboOpcaoPagamento.add(new SelectItem (1,"A Vista"));
        botaoComboOpcaoPagamento.add(new SelectItem (2,"A Prazo"));
        //Combo FormaPagamento
        botaoComboFormaPagamento.clear();
        botaoComboFormaPagamento.add(new SelectItem (1,"Dinheiro"));
        botaoComboFormaPagamento.add(new SelectItem (2,"Cheque"));
        botaoComboFormaPagamento.add(new SelectItem (3,"Cartão"));
       //Inicializa Abas01
        campoValorTotalProdutos.resetValue();
        dataTable1Model.setWrappedData(null);      
        //Inicializa Vendedor
        botaoComboNomeVendedor.clear();
        this.InicializarCampoVendedor();
        //Inicializa Cliente
        botaoComboNomeCliente.clear();
        this.InicializarCampoPessoaFisica();
        //Inicializa PopUpAviso
        painelPopUpAviso.setRendered(false);
       
         //Inicializa Abas
         aba01.setDisabled(false);
         aba02.setDisabled(true);
        //Inicializa TabelaItensVenda
         this.listaDecoradora.removeAll(this.getListaDecoradora());
         this.listaProdutos.removeAll(this.getListaProdutos());
         this.listaItensVenda.removeAll(this.getListaItensVenda());
         //Iniciliza LinkFinalizarVenda
         linkFinalizarVenda.setDisabled(true);
         controlaSaida=0;
    }


    //checkBox PorcentagemAcrescimo
    public void checkBoxPorcentagemAcrescimo_processValueChange(ValueChangeEvent vce) {
        if(checkBoxPorcentagemAcrescimo.isSelected()==true){
            campoAcrescimo.resetValue();
            campoValorAcrescimo.resetValue();
            campoAcrescimo.setDisabled(false);
            campoValorAcrescimo.setDisabled(true);
            checkBoxValorAcrescimo.setSelected(false);
        }
        else
            if((checkBoxPorcentagemAcrescimo.isSelected()==false)&&(checkBoxValorAcrescimo.isSelected()==false)){
                campoAcrescimo.setDisabled(true);
            }
    }

    //checkBox PorcentagemDesconto
    public void checkBoxPorcentagemDesconto_processValueChange(ValueChangeEvent vce) {
        if(checkBoxPorcentagemDesconto.isSelected()==true){
            campoDesconto.resetValue();
            campoValorDesconto.resetValue();
            campoDesconto.setDisabled(false);
            campoValorDesconto.setDisabled(true);
            checkBoxValorDesconto.setSelected(false);
        }
         else
            if((checkBoxPorcentagemDesconto.isSelected()==false)&&(checkBoxValorDesconto.isSelected()==false)){
                campoDesconto.setDisabled(true);
            }
    }

    //checkBox ValorAcrescimo
    public void checkBoxValorAcrescimo_processValueChange(ValueChangeEvent vce) {
        if(checkBoxValorAcrescimo.isSelected()==true){
            campoAcrescimo.resetValue();
            campoValorAcrescimo.resetValue();
            campoAcrescimo.setDisabled(true);
            campoValorAcrescimo.setDisabled(false);
            checkBoxPorcentagemAcrescimo.setSelected(false);
        }
         else
            if((checkBoxValorAcrescimo.isSelected()==false)&&(checkBoxPorcentagemAcrescimo.isSelected()==false)){
                campoValorAcrescimo.setDisabled(true);
            }
    }

    //checkBox ValorDesconto
    public void checkBoxValorDesconto_processValueChange(ValueChangeEvent vce) {
        if(checkBoxValorDesconto.isSelected()==true){
            campoDesconto.resetValue();
            campoValorDesconto.resetValue();
            campoDesconto.setDisabled(true);
            campoValorDesconto.setDisabled(false);
            checkBoxPorcentagemDesconto.setSelected(false);
        }
        else
            if((checkBoxValorDesconto.isSelected()==false)&&(checkBoxPorcentagemDesconto.isSelected()==false)){
                campoValorDesconto.setDisabled(true);
            }
    }


    //ValueChange OpcaoPagamento
    public void comboOpcaoPagamento_processValueChange(ValueChangeEvent vce) {
            comboFormaPagamento.setDisabled(false);
        if(Integer.parseInt(comboOpcaoPagamento.getValue().toString())==1){
             botaoComboFormaPagamento.clear();
             botaoComboFormaPagamento.add(new SelectItem (1,"Dinheiro"));
             botaoComboFormaPagamento.add(new SelectItem (2,"Cheque"));
             botaoComboFormaPagamento.add(new SelectItem (3,"Cartão"));
             comboQtdParcelas.setDisabled(true);
        }
        else
            if(Integer.parseInt(comboOpcaoPagamento.getValue().toString())==2){
             botaoComboFormaPagamento.clear();
             botaoComboFormaPagamento.add(new SelectItem (2,"Cheque"));
             botaoComboFormaPagamento.add(new SelectItem (3,"Cartão"));
             botaoComboFormaPagamento.add(new SelectItem (4,"Crediário"));
             comboQtdParcelas.setDisabled(false);
            }
    }

      //metodo para preenchimento do combobox ClienteFísico
    public DefaultSelectionItems InicializarCampoPessoaFisica() {
        SessionFacadeBuscarImplements facadeBusca = new SessionFacadeBuscarImplements();
        DefaultSelectionItems itens = new DefaultSelectionItems();
        itens.clear();
        try {
            //String campo_desejado, String oque_buscar,String nomeObjetoAssociado,Class classe
            List<PessoaFisicaVO> listaPessoasFisicas = facadeBusca.buscarTodos("codPessoa", PessoaFisicaVO.class);
            int j = 0;
            while (j < listaPessoasFisicas.size()) {
                itens.add(new SelectItem(listaPessoasFisicas.get(j).getCodPessoa(), listaPessoasFisicas.get(j).getNome()));
                j++;
            }
            this.setBotaoComboNomeCliente(itens);
        } catch (NullPointerException e) {
            System.err.print("Erro em inicializar o combobox:" + e.getMessage());
        }
        return null;
    }

      //metodo para preenchimento do combobox ClienteJurídico
    public DefaultSelectionItems InicializarCampoPessoaJuridica() {
        SessionFacadeBuscarImplements facadeBusca = new SessionFacadeBuscarImplements();
        DefaultSelectionItems itens = new DefaultSelectionItems();
        itens.clear();
        try {
            //String campo_desejado, String oque_buscar,String nomeObjetoAssociado,Class classe
            List<PessoaJuridicaVO> listaPessoasJuridicas = facadeBusca.buscarTodos("codPessoa", PessoaJuridicaVO.class);
            int j = 0;
            while (j < listaPessoasJuridicas.size()) {
                itens.add(new SelectItem(listaPessoasJuridicas.get(j).getCodPessoa(), listaPessoasJuridicas.get(j).getNome()));
                j++;
            }
            this.setBotaoComboNomeCliente(itens);
        } catch (NullPointerException e) {
            System.err.print("Erro em inicializar o combobox:" + e.getMessage());
        }
        return null;
    }

     //metodo para preenchimento do combobox Vendedor
    public DefaultSelectionItems InicializarCampoVendedor() {
        SessionFacadeBuscarImplements facadeBusca = new SessionFacadeBuscarImplements();
        DefaultSelectionItems itens = new DefaultSelectionItems();
        itens.clear();
        try {
            //String campo_desejado, String oque_buscar,String nomeObjetoAssociado,Class classe
            List<VendedorVO> listaVendedores = facadeBusca.buscarTodos("codVendedor", VendedorVO.class);
            int j = 0;
            while (j < listaVendedores.size()) {
                itens.add(new SelectItem(listaVendedores.get(j).getCodVendedor(), listaVendedores.get(j).getNome()));
                j++;
            }
            this.setBotaoComboNomeVendedor(itens);
        } catch (NullPointerException e) {
            System.err.print("Erro em inicializar o combobox:" + e.getMessage());
        }
        return null;
    }
     

    //ValueChange TipoClinete
    public void comboTipoCliente_processValueChange(ValueChangeEvent vce) {
        if(Integer.parseInt(comboTipoCliente.getValue().toString())==0){
            botaoComboNomeCliente.clear();
            comboNomeCliente.setDisabled(true);
        }
        else
            if(Integer.parseInt(comboTipoCliente.getValue().toString())==1){
            botaoComboNomeCliente.clear();
            comboNomeCliente.setDisabled(false);
            this.InicializarCampoPessoaFisica();
        }
        else
            if(Integer.parseInt(comboTipoCliente.getValue().toString())==2){
            botaoComboNomeCliente.clear();
            comboNomeCliente.setDisabled(false);
            this.InicializarCampoPessoaJuridica();
        }
    }


    //Botão Voltar
    public String btn_voltar_action() {
        controlaSaida = 1;
        controlaPopup(true, "Deseja Sair ?", true, true, "Sim", "Não");
        System.out.println(controlaSaida);
        return null;
    }
    //ValueChange do ProdutoABuscar
    public void produtoABuscar_processValueChange(ValueChangeEvent vce) {
         try {
            item = new SessionFacadeBuscarImplements().consultaSelectInputText(3, "descricao", produtoABuscar.getValue().toString(), ProdutoVO.class);
        } catch (NullPointerException e) {
            System.err.print("Erro auto complete:" + e.getMessage());
        }
    }

    //Ações ao Escolher o Produto
    public String produtoABuscar_action() {
       SessionFacadeBuscarImplements sessionBusca = new SessionFacadeBuscarImplements();
        Iterator it_produtos = sessionBusca.buscaPorNome("descricao", produtoABuscar.getValue().toString(), ProdutoVO.class).iterator();
        ProdutoVO produto = (ProdutoVO) it_produtos.next();
        campoValorUnitario.setValue(produto.getPrecoVenda());
        campoValorUnitario.setEffect(new Highlight());
        return null;
    }

    //Método LimparCampos()
      public void limpaCamposItem(){
        produtoABuscar.resetValue();
        campoValorUnitario.resetValue();
        campoQuantidade.resetValue();
    }

    //Botão AdicionarItem
    public String buttonAdicionarItem_action() {
        linkFinalizarVenda.setDisabled(false);
        if(!produtoABuscar.getValue().toString().equals("")){
            try{
            ValidaCamposObrigatorios valida = new ValidaCamposObrigatorios();

            valida.verificaCampoVazio(campoQuantidade);
           

            if (campoQuantidade.getValue().toString().equals("")){
                campoQuantidade.setValue(1);
                buttonAdicionarItem_action();
                limparCamposItem();
            }
            else{
            //variaveis de controle do metodo
            int indiceElementoRepetido=0;
            boolean temElementoRepetido= false;

            //busca o produto no banco
            Iterator it_produtos = new  SessionFacadeBuscarImplements().buscaPorNome("descricao",produtoABuscar.getValue().toString(), ProdutoVO.class).iterator();
            ProdutoVO produto = (ProdutoVO)it_produtos.next();
            //se a lista for vazia
            if(this.getListaProdutos().isEmpty()){
                 //cria um decorador e seta seus atributos
                  DecoradorNF decorador = new DecoradorNF();
                  decorador.setCodProduto(produto.getCodProduto());
                  decorador.setDescricaoProduto(produto.getDescricao());
                  decorador.setQuantidade(Double.parseDouble(campoQuantidade.getValue().toString()))  ;
                  decorador.setValorUnitario(Double.parseDouble(campoValorUnitario.getValue().toString()));
                  decorador.setTotal();
                  this.getListaDecoradora().add(decorador);
                  this.getListaProdutos().add(produto);
             }else{
                int tamanhoLista = this.getListaProdutos().size();
                //verifica se jÃ¡ hÃ¡ o produto na lista
                for(int i = 0; i< tamanhoLista; i++){
                    if( this.getListaProdutos().get(i).getCodProduto()==produto.getCodProduto()){
                       indiceElementoRepetido = i; //guarda a posicao do elemento repetido
                       temElementoRepetido = true; ///variavel para controle da logica
                    }//fim if
                }//fim for
                //se ja existe o elemento na lista
                if(temElementoRepetido){
                    //modifica os atributos
                    DecoradorNF decorador = this.getListaDecoradora().get(indiceElementoRepetido);
                    double novaQuantidade = Double.parseDouble(campoQuantidade.getValue().toString());
                    double quantidadeAtual = decorador.getQuantidade();
                    decorador.setQuantidade(quantidadeAtual+novaQuantidade);
                    decorador.setTotal();
                    //remove o decorador com dados nÃ£o atualizados
                    this.getListaDecoradora().remove(indiceElementoRepetido);
                    //adiciona o decorador modificado na lista
                    this.getListaDecoradora().add(indiceElementoRepetido,decorador);
                }else{//se nÃ£o houver elemento repetido
                      DecoradorNF decorador = new DecoradorNF();
                       decorador.setCodProduto(produto.getCodProduto());
                       decorador.setDescricaoProduto(produto.getDescricao());
                       decorador.setQuantidade(Double.parseDouble(campoQuantidade.getValue().toString()))  ;
                       decorador.setValorUnitario(Double.parseDouble(campoValorUnitario.getValue().toString()));
                       decorador.setTotal();
                       this.getListaDecoradora().add(decorador);
                       this.getListaProdutos().add(produto);

                }//fim else
             }//fim else

            //calcula valor total produtos
            campoValorTotalProdutos.setValue(digitos.format(calculaTotalProdutos(this.getListaDecoradora())));
            //preenche a tabela
            dataTable1Model.setWrappedData(this.getListaDecoradora());
             CadastrarVenda.setPaginacaoBusca(new PaginacaoListaCincoEmCinco(this.getListaDecoradora()));
            //defini o estado dos botoes da tabela de busca
            this.controlaPaginacao(this.getListaDecoradora().size());
             
            
             //limpa os campos
             this.limpaCamposItem();
            }
             }catch(NumberFormatException e){

             controlaPopup(true,"É necessário adicionar um Item/Quantidade",false,true,"","OK");

                System.err.println("Necessario adicionar uma quantidade. Erro: "+e.getMessage()+e.getStackTrace());

             }finally{
               return null;
            }
        }else
            controlaPopup(true, "Selecione um Produto", false, true, "", "Ok");
        return null;
    }//fim add

    //metodo para calcular o valor total dos produtos
    public double calculaTotalProdutos(List<DecoradorNF> listaDecoradora) {
        Iterator it = listaDecoradora.iterator();
        double total = 0.0;
        while (it.hasNext()) {
            DecoradorNF decorador = (DecoradorNF) it.next();
            total = total + decorador.getTotal();
        }
        return total;
    }

   

    //Método - LimparItens da Venda
     public void limparCamposItem() {
        produtoABuscar.resetValue();
        campoValorUnitario.resetValue();
        campoQuantidade.resetValue();
    }
    
     
     //Botão Excluir TabelaItens
    public String button1_action() {       
        
        if(this.getListaProdutos().size()==1){
            linkFinalizarVenda.setDisabled(true);
        }
        else
            linkFinalizarVenda.setDisabled(false);

        DecoradorNF produtoDecorador = (DecoradorNF) tabelaItensVenda.getRowData(); //pega o objeto da linha selecionada
        //Pega a Quantidade dos Produto Excluído
        double quantidadeProdutosRemovidos = produtoDecorador.getQuantidade();
        quantidadeTotalProdutos = quantidadeTotalProdutos - quantidadeProdutosRemovidos;
        campoNumeroProdutos.setValue(quantidadeTotalProdutos);
        int indiceRemover = tabelaItensVenda.getRowIndex();
        this.getListaDecoradora().remove(indiceRemover);
        this.getListaProdutos().remove(indiceRemover);
        dataTable1Model.setWrappedData(this.getListaDecoradora());
        //controle da paginacao apos remocao
        this.setPaginacaoTabelaItens(new PaginacaoListaCincoEmCinco(this.getListaDecoradora()));
        //controle dos botoes da paginacao da tabela de itens
       
        //calcula valor total produtos
        campoValorTotalProdutos.setValue(digitos.format(calculaTotalProdutos(this.getListaDecoradora())));
        this.limparCamposItem();
        return null;
    }

    //LinkFinalizarVenda
    public String linkFinalizarVenda_action() {
        //navegacao
        aba01.setDisabled(true);
        aba02.setDisabled(false);
        painelAbasVenda.setSelectedIndex(1);
        //seta numero de produtos
        campoNumeroProdutos.setValue(this.getListaProdutos().size());
        CadastrarVenda.setVendaBo(new VendaBO());
        this.setListaItensVenda(this.getVendaBo().finalizaVenda(this.getListaDecoradora()));
        //calcula valor total produtos
        campoValorTotalVenda.setValue(calculaTotalProdutos(this.getListaDecoradora()));
        //campoValorTotalVenda.setValue(digitos.format(calculaTotalProdutos(this.getListaDecoradora())));

        return null;
    }

     

   

    //Botão CadastrarVenda
    public String btn_cadastrar_action() {
      controlaPopup(true, "Confirmar Venda ?", true, true, "Sim", "Não");
      return null;
    }
    
    //LinkVoltarParaItens
    public String commandLink1_action() {
        aba01.setDisabled(false);
        aba02.setDisabled(true);
        painelAbasVenda.setSelectedIndex(0);
      return null;
    }
    
    
    //BotaoConfirmaVenda - SIM
    public String btn_popUpAviso1_action() {
        if(controlaSaida==1){
            return"voltar";
        }
        else{
        SessionFacadeCadastrarImplements cadastrar = new SessionFacadeCadastrarImplements();
        Date dateVenda = (Date) (Object) dataVenda.getValue();
        try{
           
           if(cadastrar.cadastrarVenda(Integer.parseInt(campoCodVenda.getValue().toString()), dateVenda, 2.0, 4.0, Integer.parseInt(comboQtdParcelas.getValue().toString()), Double.parseDouble(campoNumeroProdutos.getValue().toString()),Double.parseDouble(campoValorTotalVenda.getValue().toString()),
            Integer.parseInt(comboFormaPagamento.getValue().toString()), Integer.parseInt(comboTipoCliente.getValue().toString()), Integer.parseInt(comboNomeCliente.getValue().toString()) , Integer.parseInt(comboNomeVendedor.getValue().toString()) ,this.getListaItensVenda() , this.getListaProdutos())){
               painelPopUpAviso.setRendered(true);
               tx_popUpAviso.setValue("Venda Cadastrada com Sucesso");
               btn_popUpAviso2.setValue("OK");
               btn_popUpAviso1.setRendered(false);

           }
           else{
               painelPopUpAviso.setRendered(true);
               tx_popUpAviso.setValue("Erro ao Cadastrar Venda");
               btn_popUpAviso2.setValue("OK");
               btn_popUpAviso1.setRendered(false);
           }
        }
        catch (IOException ex) {
            System.err.println("Erro:" + ex.getMessage());
            ex.getStackTrace();
        }catch(NullPointerException x){
             x.getStackTrace();
        } catch (Exception e) {
            e.getStackTrace();
            System.err.println("Erro:" + e.getMessage());
        }
        }
        return null;
    }

     //BotaoConfirmaVenda - NÃO
    public String btn_popUpAviso2_action() {
        painelPopUpAviso.setRendered(false);
        painelAbasVenda.setSelectedIndex(0);     
        return null;
    }

    //Metodo ControlaPopUp
     public void controlaPopup(boolean renderedPopup, String textoPoup, boolean btn1Rendered, boolean btn2Rendered,
           String textobtn1, String textobtn2) {

      painelPopUpAviso.setRendered(renderedPopup);
      tx_popUpAviso.setValue(textoPoup);
      btn_popUpAviso1.setValue(textobtn1);
      btn_popUpAviso1.setRendered(btn1Rendered);
      btn_popUpAviso2.setRendered(btn2Rendered);
      btn_popUpAviso2.setValue(textobtn2);
   }

     //DesabilitaCampos
    public void LimpaCampos(){
       campoCodVenda.resetValue();
       dataVenda.resetValue();
       comboTipoCliente.resetValue();
       comboNomeCliente.resetValue();
       comboNomeVendedor.resetValue();
       comboOpcaoPagamento.resetValue();
       comboFormaPagamento.resetValue();
       comboQtdParcelas.resetValue();
       checkBoxPorcentagemAcrescimo.resetValue();
       checkBoxPorcentagemDesconto.resetValue();
       checkBoxValorAcrescimo.resetValue();
       checkBoxValorDesconto.resetValue();
       produtoABuscar.resetValue();
       campoValorUnitario.resetValue();

    }

    public String tabelaItensVenda_firstPageAction() {
      dataTable1Model.setWrappedData(CadastrarVenda.getPaginacaoBusca().firstPage());
      tabelaItensVendaFooterFirstButton.setDisabled(true);
      tabelaItensVendaFooterPreviousButton.setDisabled(true);
      if (CadastrarVenda.getPaginacaoBusca().getTotalPaginas() > 1) {
         tabelaItensVendaFooterNextButton.setDisabled(false);
         tabelaItensVendaFooterLastButton.setDisabled(false);
      }
      return null;
   }

    public String tabelaItensVenda_previousPageAction() {
        dataTable1Model.setWrappedData(CadastrarVenda.getPaginacaoBusca().previousPage());
      if (CadastrarVenda.getPaginacaoBusca().getNumeroDaPagina() == 1) {
         tabelaItensVendaFooterNextButton.setDisabled(true);
         tabelaItensVendaFooterFirstButton.setDisabled(true);
         tabelaItensVendaFooterPreviousButton.setDisabled(true);
      }
      if (CadastrarVenda.getPaginacaoBusca().getTotalPaginas() > 1) {
         tabelaItensVendaFooterNextButton.setDisabled(false);
         tabelaItensVendaFooterLastButton.setDisabled(false);
      }
      if (CadastrarVenda.getPaginacaoBusca().getNumeroDaPagina() >= 2) {
         tabelaItensVendaFooterFirstButton.setDisabled(false);
      }
      return null;
   }

    public String tabelaItensVenda_nextPageAction() {
      dataTable1Model.setWrappedData(CadastrarVenda.getPaginacaoBusca().nextPage());
      tabelaItensVendaFooterPreviousButton.setDisabled(false);
      if (CadastrarVenda.getPaginacaoBusca().getTotalPaginas() == CadastrarVenda.getPaginacaoBusca().getNumeroDaPagina()) {
         tabelaItensVendaFooterNextButton.setDisabled(true);
         tabelaItensVendaFooterLastButton.setDisabled(true);
      }
      if (CadastrarVenda.getPaginacaoBusca().getNumeroDaPagina() >= 2) {
         tabelaItensVendaFooterFirstButton.setDisabled(false);
      }
      return null;
   }

    public String tabelaItensVenda_lastPageAction() {
        dataTable1Model.setWrappedData(CadastrarVenda.getPaginacaoBusca().lastPage());
      if (CadastrarVenda.getPaginacaoBusca().getTotalPaginas() == CadastrarVenda.getPaginacaoBusca().getNumeroDaPagina()) {
         tabelaItensVendaFooterLastButton.setDisabled(true);
         tabelaItensVendaFooterNextButton.setDisabled(true);
         tabelaItensVendaFooterPreviousButton.setDisabled(false);
         tabelaItensVendaFooterFirstButton.setDisabled(false);
      }
      if (CadastrarVenda.getPaginacaoBusca().getNumeroDaPagina() >= 2) {
         tabelaItensVendaFooterFirstButton.setDisabled(false);
      }
      return null;
   }

     //metodo para controlar os botoes da paginacao na tabela resultado busca
   public void controlaPaginacao(int controlePaginas) {
      if (controlePaginas <= 5) {
         tabelaItensVendaFooterFirstButton.setDisabled(true);
         tabelaItensVendaFooterPreviousButton.setDisabled(true);
         tabelaItensVendaFooterNextButton.setDisabled(true);
         tabelaItensVendaFooterLastButton.setDisabled(true);
      }
      if (controlePaginas > 5) {
         tabelaItensVendaFooterNextButton.setDisabled(false);
         tabelaItensVendaFooterLastButton.setDisabled(false);
         tabelaItensVendaFooterFirstButton.setDisabled(true);
         tabelaItensVendaFooterPreviousButton.setDisabled(true);
      }
   }

   
   
}

